package com.lonely.inventory.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lonely.inventory.domain.dto.surplus.*;
import com.lonely.inventory.domain.entity.SysSurplusInventory;
import com.lonely.inventory.domain.vo.surplus.SurplusInventoryPageQueryVo;
import com.lonely.order.domain.vo.order.OrderQuantityInfo;

/**
 * @author : 黄志标
 * @date: 2025/9/19 10:02
 * @description: 尾货库存服务类
 */
public interface ISurplusInventoryService extends IService<SysSurplusInventory> {

    /**
     * 分页查询
     *
     * @param queryDto
     * @return
     */
    Page<SurplusInventoryPageQueryVo> page(SurplusInventoryPageQueryDto queryDto);

    /**
     * 更新尾货库存备注信息
     *
     * @param submitDto
     */
    void submitRemark(EditSurplusInventoryRemarkDto submitDto);

    /**
     * 根据尾货库存id获取对应的尺码库存数量信息
     *
     * @param surplusInventoryId
     * @return
     */
    OrderQuantityInfo getSurplusInventoryStockQuantityInfo(Long surplusInventoryId);

    /**
     * 更新尾货库存
     *
     * @param submitDto
     */
    void editSurplusInventory(EditSurplusInventoryDTO submitDto);

    /**
     * 查询指定订单的尾货库存尺码库存数量初始化信息
     *
     * @param produceOrderId
     * @return
     */
    OrderQuantityInfo getInitSurplusInventorySizeInfo(Long produceOrderId);

    /**
     * 新增尾货库存
     *
     * @param submitDto
     */
    void addSurplusInventory(AddSurplusInventoryDTO submitDto);

    /**
     * 尾货上架
     *
     * @param submitDto
     */
    void surplusStockPutAway(SurplusStockPutAwayDTO submitDto);
}
